package ar.edu.itba.it.cg.grupo01.impl;

import java.util.Collections;
import java.util.Set;

import javax.vecmath.Point3f;

import ar.edu.itba.it.cg.grupo01.api.Intersection;
import ar.edu.itba.it.cg.grupo01.api.shape.Shape;

public class EmptyIntersection implements Intersection<Shape> {

	@Override
	public Set<Point3f> getIntersections() {
		return Collections.emptySet();
	}

	@Override
	public boolean intersects() {
		return false;
	}

	@Override
	public Shape getObject() {
		throw new UnsupportedOperationException("So sorry");
	}

	@Override
	public float distance(Point3f point) {
		return Float.MAX_VALUE;
	}

	@Override
	public Point3f closestTo(Point3f origin) {
		throw new UnsupportedOperationException("So sorry");
	}

	@Override
	public Intersection<? extends Shape> getClosestIntersectionTo(Point3f point) {
		throw new UnsupportedOperationException("So sorry");
	}

	@Override
	public Intersection.Type getType() {
		return Intersection.Type.NO;
	}

	@Override
	public void setType(ar.edu.itba.it.cg.grupo01.api.Intersection.Type type) {
		throw new UnsupportedOperationException("So sorry");
	}

	@Override
	public void getDetails(Shape shape, RayTraceInformation info, float delta,
			Details details) {
		throw new UnsupportedOperationException("So sorry");
	}

}
